IPMI sol命令阻塞问题分析
更新时间: 2026/06/02
在Gitcode上查看源码问题背景
- 单板类型:Kunpeng 920 7280Z;
- 软件版本:openUBMC 25.09;
- 涉及功能:ipmi命令进行串口切换;
- 硬件配置:4个cpu,8张直通nvme硬盘(忆联UH811A);
- 触发条件:下发ipmitool -I lanplus -H ip地址 -U 用户名 -P 密码 -C 17 sol activate命令。
- 业务表现:预期可正常切换串口;实际切换失败。
问题复现步骤
BMC正常运行,设备上接串口线,执行命令
shell
ipmitool -I lanplus -H ip地址 -U 用户名 -P 密码 -C 17 sol activate关键日志信息
执行sol activate命令阻塞,现象是sol activate后没有任何输出,也不响应字符输入: 串口组件日志:
定位过程
- 测试发现BMC有一路SOL串口连接至CPLD,在CPLD里强制将SOL串口切换到BMC UART或者CPU UART,IMPI SOL都有对应的log输出,结合硬件来看,怀疑需要BMC传递一个SOL_SW给CPLD(类似与JTAG_SW),由CPLD路由到对应端口;
- 查看硬件手册,可能是cpld那边没处理好,另外SOL串口(UART5)切换也不走CPLD,可能属于软件层面的功能。
- 尝试UART2的BMC面板串口,确认是正常的,也可以通过切换选择BMC侧或者KP侧。
- 查看iBMC的接口说明中有关串口切换的描述,同时确认HW提供的载板命令字表格中原先的载板切换SOL描述的信息是否在用; 结果:命令字可沿用,没问题。
- 从日志上看,打印“serial_sw_obj is null”,确认软件代码配置是否有问题,具体方向为HW提供的载板命令字表格中原先是有载板切换SOL是否配置,SMC命令字是否正常;
- 确认外界电路手册及硬件涉及原理图,查看是否硬件电路问题;
- telnet登录后尝试手动往/dev/ttySS5设备echo,另外一个终端tail -f查看,看下是否有输出。如果没有输出,那就是SOL连接的设备的问题;
问题原因
参考定位过程中的方式用echo test > /dev/ttySS5测试,tail -f /dev/ttySS5没有输出,确认SOL连接的设备的问题。
解决方案
修改串口配置连接host即可。